Stako[1] estas datumstrukturo tia, ke tiajn anojn oni atingas laŭvice, kaj legas ilin en la ordo inversa rilate al tiu, en kiu ili estis registritaj (tial oni ankaŭ nomas stakon inversvica memoro[2] (angle LIFO, Last In — First Out t.e. «laste enirinta unue eliras»). Plej ofte oni komparas stakon kun stako da teleroj: oni povas preni nur la teleron, kiu estas sure, kaj nur suren ankaŭ meti teleron.
Stako kutime disponigas jenajn funkciojn: surstakigu (aŭ metu), elstakigu (aŭ prenu), montru (sen forigi) kaj alto (kiom da eroj estas en la stako). Vd realigon de tiuj funkcioj en la artikolo «Malloka variablo».
Oni ofte uzas stakojn en komputiloj. Ekzemple, en programo: kiam subprogramo estas vokota, la kuranta adreso metiĝas sur la vokstakon, kaj la subprogramo komenciĝas. Kaj kiam subprogramo finiĝas, necesas reveni tien, de kie la subprogramo estis vokita — por tio oni prenas la revenadreson de sur la vokstako kaj iras laŭ ĝi. La vokstako (ankaŭ nomata plenumstako[3]) estas grava parto de plimulto da modernaj procesoroj. Altnivelaj programlingvoj uzas stakon ankaŭ por transdoni la parametrojn al la vokata subprogramo.